package com.dragon.framework.config;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.http.client.ClientHttpResponse;
import org.springframework.lang.NonNull;
import org.springframework.web.client.ResponseErrorHandler;
import org.springframework.web.client.RestTemplate;

import java.io.IOException;

/**
 * RestTemplate配置
 *
 * @author dragon
 * @version 1.0
 * @date 2024/7/24 17:05
 */
@Configuration
public class RestTemplateConfig {

    @Bean
    public RestTemplate restTemplate() {
        RestTemplate restTemplate = new RestTemplate();
        // 如果不需要使用PATCH请求可以不更改默认工厂类
        // 默认的 RestTemplate 有个机制是请求状态码非200 就抛出异常，会中断接下来的操作
        restTemplate.setErrorHandler(new ResponseErrorHandler() {
            @Override
            public boolean hasError(@NonNull ClientHttpResponse response) throws IOException {
                return false;
            }

            @Override
            public void handleError(@NonNull ClientHttpResponse response) throws IOException {

            }
        });

        return restTemplate;
    }

}
